<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            padding: 0px;
            margin: 0px;
        }
        .wrap {
            width: 80%;
            background: skyblue;
            /*overflow: hidden;  方案一 ：使父元素具有BFC特性，浮动高度会计算 */
           /* height: 100px;   方案二：父容器设置固定高度 */
        }
        .box1 {
            width: 100px;
            height: 100px;
            background: rgb(230, 71, 79);
            float: left;
        }
        .box2 {
            width: 100px;
            height: 50px;
            background: yellow;
            float: left;
        }
        .clear {
            clear: both;   
        }
        /* .wrap::after{     */
        .wrap:after{    
           display: block;
           content: '';  
           visibility: hidden;
           height: 0px;
           clear: both;   
        }   
        /* 方案四：伪类（大公司使用）*/
      
    </style>
</head>
<body>
    <h1>父容器高度塌陷</h1>
    <!-- 当父容器内所有的子元素都浮动后，导致父容器高度塌陷。
         本质: 父容器的高度是内部容器撑开的，当子元素元素浮动后，脱离了正常文档流，导致父容器的高度塌陷，高度变为0px。
         解决方案 :
            1. 给父元素添加 overflow: hidden, 使父元素具有BFC特性，浮动高度会计算
            2. 给父容器设置固定的高度(实际场景中子元素个数是不确定的，高度是动态变化的，写死不好)
            3. 清除浮动，让父级div能自动获取到高度
            4. 父级div定义伪类 ::after /  :after
        -->
    <div class="wrap">
       <div class="box1"></div>
       <div class="box2"></div>
       <!-- 方案三: 清除浮动 -->
       <!-- <div class="clear"></div>   -->
    </div>
</body>
</html>